/**
 * 部门:管理 - 添加角色
 * Created by mhy on 2017/1/9.
 */

var powerArr = new Array(); //定义权限数组来保存 添加的权限id
var scopeArr = new Array(); //定义发送范围数组来保存 添加的发送范围id
$(document).ready(function() {

    /* 添加权限*/
    var $powerTable = $("#powerTable");  // 权限表
    var $powerModal = $(".bs-example-modal-ap");  //添加权限弹出框
    var $powerEnsureButton = $(".btn-primary",$powerModal);  //添加权限里的确定按钮

    $powerEnsureButton.click(function () {
      addPower(powerArr,$powerTable,$powerModal);
    });

    /* 保存按钮 */
    $("#save").click(function () {
        var rolename = $("input[name='rolename']").val(); //角色名
        var $error = $(".error","div"); //错误提示信息
        var $this = $(this);

        $error.css("display","none");
        if(rolename.length == 0){
            $error.css("display","block");
            $error.text("请填写角色名");
            return;
        }  else if(rolename.length > 12){
            $error.css("display","block");
            $error.text("角色名长度不能超过12");
            return;
        }

        $this.attr("disabled","disabled"); //设置确定按钮暂时不可用
        /* Ajax:
         * 功能:添加角色
         * */
        $.ajax({
            type:'PUT',//请求类型
            url:'../department/manage/role/',//请求地址
            contentType: 'application/json;',//发送信息至服务器时内容编码类型
            data:JSON.stringify({
                                    "opt": "save",
                                    "name":rolename,
                                    "powers":powerArr,
                                    "send_doc_target_scope":scopeArr
                                }),
            dataType:'JSON',/*预期服务器返回的数据类型*/
            success:function (json) {//成功获取到后台返回的值后，对后台返回的值做相应的一系列操作
                var $info =  $(".info","div");

                $info.css("display","block");

                if(json.result){
                    promptInformation($info,"success","添加成功，即将跳转");

                    setTimeout(function(){   //跳转到角色列表
                        toDepartmentRoleList();
                    }, 300);
                }else{
                    $this.removeAttr("disabled"); //设置确定按钮可用
                    promptInformation($info,"error",json.err_msg);  //错误提示
                }
            },
            error: function(XMLHttpRequest, textStatus, errorThrown) {
            },
            fail:function () { //如果在传输过程失败了：调用fail中对应的匿名函数(可选)
            },
            cache:true,
        });
    });

    //返回按钮
    $("button.btn-info").eq(0).click(function () {
        goLastPage();
    });

});

/* 删除权限范围 */
function deletePower(powerId) {
    var $powerModal = $(".bs-example-modal-ap");  //添加发送范围弹出框
    var $checkboxes =  $("input[type='checkbox']",$powerModal);
    var $tr = $("tr",".powerTable");

    for(var i = 0;i < $tr.length ;i++){
        if(powerId ==  $("td",$tr.eq(i)).eq(0).text()){
            $tr.eq(i).remove();

            for(var j = 0 ;j < $checkboxes.length;++j){
                if($checkboxes.eq(j).attr("disabled")){
                    if($("td",$checkboxes.eq(j).parents("tr")).eq(1).text() == powerId){
                        $checkboxes.eq(j).removeAttr("disabled");
                        $checkboxes.eq(j).removeAttr("checked");
                    }
                }

            } //end for
            for(var n = 0;n < powerArr.length;n++){
                if(powerArr[n] == powerId){
                    powerArr.splice(n,1);
                }
            }

        }
    }
};

//初始化表格
function initTable(data){
    var $datatable = $('#datatable-checkbox');
    $datatable.dataTable( {
        data:data,
        columns:[
            {
                "render": function () {
                    return '<input type="checkbox" class="flat"  name="table_records"/>';
                },
            },
            { "sTitle": "ID" },
            { "sTitle": "部门名称" },
        ],
        order:[
            [1, "asc"]
        ],
        columnDefs: [
            { orderable: false, targets: [0] },
        ],
    } );
}